const {  errorResponse } = require('../utils/errorResponse')

const errorHandler = (err,req,res,next) => {
  // console.log(err);

  // 默认错误配置
  let statusCode = err?.statusCode || 500;
  let errMessage = err?.message || '服务器内部错误';

   // 开发环境显示详细错误（生产环境隐藏）
  const data = process.env.NODE_ENV === 'development' ? err : null;

  // 数据库错误特殊处理
  if (err.name === 'MySQL2Error') {
    statusCode = 400;
    errMessage = '数据库操作失败: ' + err.sqlMessage;
  }
  // JWT认证错误处理
  if (err.name === 'JsonWebTokenError') {
    statusCode = 401;
    errMessage = '身份认证失败: 无效的token';
  }
  
  errorResponse(res, errMessage, statusCode, data);
}

module.exports = errorHandler